package com.edu.d11_test;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Test1 {
    public static void main(String[] args) throws Exception {
        /**
         * 有100份礼物，小明和小红同时进行分发，等礼物还剩十份的时候停止分发
         * 利用多线程来模拟分发的过程，并将分发的线程名称打印出来
         * 同时在后台打印出小红和小明各分发了多少个礼物
         */
        //1、将100个礼物拿到程序当中来
        List<String> list = new ArrayList<>();
        Random random = new Random();
        String[] gift={"鲜花","包包","口红","手表","皮带","五年高考三年模拟"};
        for (int i = 0; i < 100; i++) {
            list.add(gift[random.nextInt(gift.length)]+(i+1));
        }
        System.out.println(list);


        /**
         * 2、创建小红和小明的两个线程对象
         */
        MyThread XM = new MyThread(list, "小明");
        XM.start();
        MyThread XH = new MyThread(list, "小红");
        XH.start();

        /**
         * 由于在输出统计次数的时候，不能够确定是否已经线程执行完毕
         * 因此需要使用join()来保证上面线程已经执行完毕
         */
        XM.join();
        XH.join();


        System.out.println("------------------------------------");
        System.out.println("线程===》"+XM.getName()+"分发了礼物"+XM.getCount()+"个");
        System.out.println("线程===》"+XH.getName()+"分发了礼物"+XH.getCount()+"个");

    }
}
